package com.google.code.jcooky.chat.commons.jrc;

import com.google.code.jcooky.rpc.protocol.Protocol;

public final class ChatService {
	public static interface Iface {
		public java.lang.Boolean add(java.lang.String id);
		public void remove(java.lang.String id);
		public java.util.List getEnteredList(java.lang.String id);
		public java.util.List getEnterUser(java.lang.String id);
		public java.util.List getClosedUser(java.lang.String id);
		public java.util.List getMessage(java.lang.String id);
		public void addMessage(java.lang.String id, java.lang.String msg);
		public java.util.List getSystemInfo(java.lang.String id);

	}
	
	public static class Client implements Iface {
		private Protocol protocol;
		
		public Client(Protocol protocol) {
			this.protocol = protocol;
		}
		
		public java.lang.Boolean add(java.lang.String id) {
			protocol.clear();
			
			protocol.setClass(Iface.class);
			protocol.setFunction("add");
			protocol.addArguments("id", java.lang.String.class, id);

			
			protocol.call();
			
			try {
				return (java.lang.Boolean)protocol.getReturn();
			} catch(ClassNotFoundException e) {
				throw new RuntimeException(e);
			}
		}
		public void remove(java.lang.String id) {
			protocol.clear();
			
			protocol.setClass(Iface.class);
			protocol.setFunction("remove");
			protocol.addArguments("id", java.lang.String.class, id);

			
			protocol.call();
			
			try {
				protocol.getReturn();
			} catch(ClassNotFoundException e) {
				throw new RuntimeException(e);
			}
		}
		public java.util.List getEnteredList(java.lang.String id) {
			protocol.clear();
			
			protocol.setClass(Iface.class);
			protocol.setFunction("getEnteredList");
			protocol.addArguments("id", java.lang.String.class, id);

			
			protocol.call();
			
			try {
				return (java.util.List)protocol.getReturn();
			} catch(ClassNotFoundException e) {
				throw new RuntimeException(e);
			}
		}
		public java.util.List getEnterUser(java.lang.String id) {
			protocol.clear();
			
			protocol.setClass(Iface.class);
			protocol.setFunction("getEnterUser");
			protocol.addArguments("id", java.lang.String.class, id);

			
			protocol.call();
			
			try {
				return (java.util.List)protocol.getReturn();
			} catch(ClassNotFoundException e) {
				throw new RuntimeException(e);
			}
		}
		public java.util.List getClosedUser(java.lang.String id) {
			protocol.clear();
			
			protocol.setClass(Iface.class);
			protocol.setFunction("getClosedUser");
			protocol.addArguments("id", java.lang.String.class, id);

			
			protocol.call();
			
			try {
				return (java.util.List)protocol.getReturn();
			} catch(ClassNotFoundException e) {
				throw new RuntimeException(e);
			}
		}
		public java.util.List getMessage(java.lang.String id) {
			protocol.clear();
			
			protocol.setClass(Iface.class);
			protocol.setFunction("getMessage");
			protocol.addArguments("id", java.lang.String.class, id);

			
			protocol.call();
			
			try {
				return (java.util.List)protocol.getReturn();
			} catch(ClassNotFoundException e) {
				throw new RuntimeException(e);
			}
		}
		public void addMessage(java.lang.String id, java.lang.String msg) {
			protocol.clear();
			
			protocol.setClass(Iface.class);
			protocol.setFunction("addMessage");
			protocol.addArguments("id", java.lang.String.class, id);
			protocol.addArguments("msg", java.lang.String.class, msg);

			
			protocol.call();
			
			try {
				protocol.getReturn();
			} catch(ClassNotFoundException e) {
				throw new RuntimeException(e);
			}
		}
		public java.util.List getSystemInfo(java.lang.String id) {
			protocol.clear();
			
			protocol.setClass(Iface.class);
			protocol.setFunction("getSystemInfo");
			protocol.addArguments("id", java.lang.String.class, id);

			
			protocol.call();
			
			try {
				return (java.util.List)protocol.getReturn();
			} catch(ClassNotFoundException e) {
				throw new RuntimeException(e);
			}
		}

	}
}